package com.zut.util;
import java.util.ArrayList;
import java.util.Arrays;

public class demo {
    public static void main(String[] args) {
        // 首先创建个一到n的数组
        int n=12,m=2;
        int[] all=new int[n];
        // 创建好原始数组
        for (int i = 0; i < n; i++) {
            all[i]=i+1;
        }
        // 遍历
        System.out.println("Arrays.toString(all) = " + Arrays.toString(all));

        // 创建一个集合用来收集被标记的元素
        ArrayList<Integer> list = new ArrayList<>();
        // 定义一个count 用于记录步数，便于标记符合条件的索引下标
        int count =1;
        // 开启一个死循环
        for (int i = 0; true ; i++) {

            // 判断是否已经循环一圈，令下标设为-1,就是从头开始
            if(i==n){
                i=-1;
                continue;
            }
            // 判断当前元素是否已经被收集
            if(all[i]==-1){
                // 代表已经被标记过，跳过
                continue;
            }
            if(count%m==0){
                // 代表找到了符合的元素，收集到list当中，并且设置当前元素为-1，便于判断是否已经收集
                list.add(all[i]);
                all[i]=-1;
            }
            // 当list当中元素长度达到n时，代表全部收集完毕
            if(list.size()==n){
                list.forEach(System.out::println);
                break;
            }
            count++;
        }
    }
}
